﻿using System.Collections.Generic;
using CoreLibrary.Repo;
using Entities.DataBase.Obj;
using Entities.DataBase.Persistent;

namespace Entities.DataBase {

    public interface IPackageRepository : IRepository<Package> {

        void Add(Package package);
        void Remove(string packageId);
        void RemoveByReference(string reference);

        void Update(string packageId, PackageUpdator updator);
        void UpdateStatus(string packageId, int status);
        void UpdateData(string packageId, string data);

        Package Get(string packageId);
        List<PackageInfo> ListAll();
        List<PackageInfo> ListByReference(string reference);
        List<PackageInfo> ListByKeywords(string keywords);
        List<PackageInfo> SearchPackages(int? courierId, int? type, string customerName, string trackingId);

    }
}